package com.ktgj.flight.service;

import java.util.List;
import java.util.Map;

import com.ktgj.flight.domain.*;
import com.ktgj.flight.domain.vo.FlightOrderChangeVO;
import com.ktgj.flight.domain.vo.FlightOrderPending;
import com.ktgj.flight.domain.vo.FlightRefundChange;

/**
 * 机票预订_机票退改签废订单信息Service接口
 * 
 * @author ruoyi
 * @date 2021-10-26
 */
public interface IFlightOrderChangeService 
{
    /**
     * 查询机票预订_机票退改签废订单信息
     * 
     * @param changeOrderId 机票预订_机票退改签废订单信息ID
     * @return 机票预订_机票退改签废订单信息
     */
    public FlightOrderChange selectFlightOrderChangeById(String changeOrderId);

    /**
     * 查询机票预订_机票退改签废订单信息列表
     * 
     * @param flightOrderChange 机票预订_机票退改签废订单信息
     * @return 机票预订_机票退改签废订单信息集合
     */
    public List<FlightOrderChange> selectFlightOrderChangeList(FlightOrderChange flightOrderChange);

    /**
     * 新增机票预订_机票退改签废订单信息
     * 
     * @param flightOrderChange 机票预订_机票退改签废订单信息
     * @return 结果
     */
    public int insertFlightOrderChange(FlightOrderChange flightOrderChange);

    /**
     * 修改机票预订_机票退改签废订单信息
     * 
     * @param flightOrderChange 机票预订_机票退改签废订单信息
     * @return 结果
     */
    public int updateFlightOrderChange(FlightOrderChange flightOrderChange);

    /**
     * 批量删除机票预订_机票退改签废订单信息
     * 
     * @param changeOrderIds 需要删除的机票预订_机票退改签废订单信息ID
     * @return 结果
     */
    public int deleteFlightOrderChangeByIds(Long[] changeOrderIds);

    /**
     * 删除机票预订_机票退改签废订单信息信息
     * 
     * @param changeOrderId 机票预订_机票退改签废订单信息ID
     * @return 结果
     */
    public int deleteFlightOrderChangeById(Long changeOrderId);

    /**
     * 退票申请
     * @return
     */
    public Map<String, Object> orderChangeTickets(Long orderId);

    /**
     * 申请退票
     * @param
     * @return
     */
    public int insertOrderChangeTickets(String refundReason, Long orderId, String pdfContent);

    /**
     * 根据订单号获取退票申请
     * @param orderNo
     * @return
     */
    public FlightOrderChange getFlightOrderChangeInfoByOrderNo(String orderNo);
    /**
     * 机票退改签的查询
     * @param flightRefundChange
     * @return
     */
    public List<FlightRefundChange> selectFlightReturnChange(FlightRefundChange flightRefundChange);
    /**
     * 查询机票（）待处理订单一个
     * @param orderId
     * @return
     */
    public FlightOrderPending selectFlightOrderPendingById(String orderId);

    /**
     * 根据所有条件查询待处理订单李彪
     * @param flightOrderPending
     * @return
     */
    public List<FlightOrderPending> selectFlightOrderPending(FlightOrderPending flightOrderPending);

    /**
     * 退改签订单列表
     * @param tickets
     * @return
     */
    public List<FlightOrderChangeVO> queryOrderChangeList(FlightOrderChangeTicketsDto tickets);

    /**
     * 退改签订单详情
     * @param changeOrderId
     * @return
     */
    public FlightChangeOrderVO queryOrderChange(String changeOrderId);

    /**
     * 机票改签详情
     * */
    public OrderFlightDetails selectOrderChangeDetails(String changeOrderId) throws Exception;

    /**
     * 退票订单列表
     * */
    public List<FlightOrderChange> refundList(String airline, String start, String end);

    /**
     * 会员手机号获取机票退票单
     * */
    public List<FlightOrderChange> refundForm(String phone);
}
